import Vue from 'vue'
import Vuex from 'vuex'
import mutations from  './mutations'

//使用插件vuex
Vue.use(Vuex)


//创建store对象
const store = new Vuex.Store({
  state: {
    cartList: []
  },
  mutations,
  actions: {
    //将pruduce添加到cartList中
      addCartList(context ,value){
      //通过iid判断添加的商品是否之前添加过，有就数量加一，没有就加个商品
      return new Promise(( resolve,reject) =>{
        let oldpruduce = null
        value.checked = true
        context.state.cartList.forEach( (item)=>{
          if (value.iid ===item.iid){//已经有该商品了
            oldpruduce = item

          }
        })
        if (oldpruduce){//商品数量加一
          oldpruduce.count  += 1
          resolve('当前商品数量 + 1')
        } else{
          //因为没有商品的时候count是不存在的，所以要手动添加一个数字给它
          value.count =1
          context.state.cartList.push(value);
          resolve('添加新商品成功')
        }
      })




      }
  },
  getters:{
    cartLength(state){
      return state.cartList.length
    },
    cartList(state){
      return state.cartList
    }
  },

  modules: {
  }
})

//挂载导出store在实例上
export  default  store